package com.bcbim.operation_maintenance.space_inventory_report.mapper;

import com.bcbim.operation_maintenance_interface.space_inventory_report.dao.SpaceInventoryReportDAO;
import com.bcbim.operation_maintenance_interface.space_inventory_report.dto.ListSpaceInventoryReportDTO;
import com.bcbim.operation_maintenance_interface.space_inventory_report.dto.SpaceInventoryReportDTO;
import com.bcbim.operation_maintenance_interface.space_inventory_report.vo.ListSpaceInventoryReportNameVO;
import com.bcbim.operation_maintenance_interface.space_inventory_report.vo.ListSpaceInventoryReportVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @version V 1.0.0
 * @Description：空间清册报表mapper接口类
 * @Author: haomeijie
 * @Date: 2022/4/13 13:51
 **/
@Mapper
public interface SpaceInventoryReportMapper {
    /**
     * 空间清册列表总数
     *
     * @param listSpaceInventoryReportDTO
     * @return int
     * @Author: haomeijie
     * @Date: 2022/4/13 14:38
     */
    int listSpaceInventoryReportCount(ListSpaceInventoryReportDTO listSpaceInventoryReportDTO);

    /**
     * 空间清册列表
     *
     * @param listSpaceInventoryReportDTO
     * @return List<ListSpaceInventoryReportVO>
     * @Author: haomeijie
     * @Date: 2022/4/13 14:38
     */
    List<ListSpaceInventoryReportVO> listSpaceInventoryReport(ListSpaceInventoryReportDTO listSpaceInventoryReportDTO);

    /**
     * 统计面积之和
     *
     * @param listSpaceInventoryReportDTO
     * @return double
     * @Author: haomeijie
     * @Date: 2022/4/15 16:41
     */
    Double getSpaceSum(ListSpaceInventoryReportDTO listSpaceInventoryReportDTO);

    /**
     * @Description: 空间清册报表名称列表
     * @Date: 2022/4/14 10:51
     * @Param: [spaceInventoryReportDTO]
     * @return: java.util.List<com.bcbim.model_interface.space_inventory_report.vo.ListSpaceInventoryReportNameVO>
     * @Author: lihonggang
     **/
    List<ListSpaceInventoryReportNameVO> listSpaceInventoryReportName(SpaceInventoryReportDTO spaceInventoryReportDTO);

    /**
     * @Description: 查询空间清册报表名称列表总数
     * @Date: 2022/4/14 11:07
     * @Param: [spaceInventoryReportDTO]
     * @return: int
     * @Author: lihonggang
     **/
    int countListSpaceInventoryReportName(SpaceInventoryReportDTO spaceInventoryReportDTO);

    /**
     * @Description: 修改空间清册报表名称
     * @Date: 2022/4/14 14:32
     * @Param: [spaceInventoryReportDAO]
     * @return: int
     * @Author: lihonggang
     **/
    int updateSpaceInventoryReportName(SpaceInventoryReportDAO spaceInventoryReportDAO);

    /**
     * 判断名字是否重复
     *
     * @param spaceInventoryReportDAO
     * @return int
     * @Author: haomeijie
     * @Date: 2022/4/14 16:25
     */
    int checkReportName(SpaceInventoryReportDAO spaceInventoryReportDAO);

    /**
     * 新增报表
     *
     * @param spaceInventoryReportDAO
     * @return int
     * @Author: haomeijie
     * @Date: 2022/4/14 17:52
     */
    int insertSpaceInventoryReport(SpaceInventoryReportDAO spaceInventoryReportDAO);


    /**
     * 查询名字同系列的报表名称
     *
     * @param reportName
     * @param projectId
     * @return List<String>
     * @Author: haomeijie
     * @Date: 2022/4/15 14:09
     */
    List<String> listReportName(@Param("reportName") String reportName, @Param("projectId") String projectId);
}
